<!-- Redéfinition du menu pour la recherche avancée de films 
Recherche sur le titre
ou
Recherche sur l'acteur : afficher les films qu'à fait l'acteur
ou
Recherche sur le contenu : Afficher les films ou le contenu est présent dans le sommaire
ou
Recherche sur le type : Afficher les films qui ont le type donné (liste déroulante peut etre)
-->
<?php
	require(I_PATH . "/autocomplete.php");  
?>
<h1> Recherche personnalisée </h1>
<FORM Method="POST" Action="?p=search2">
	<label for="titre">
		Titre :
	</label>
	<INPUT id="titre" type="text" size="15" name="titre"><br/>
	<label for="acteur">
		Acteur :
	</label>
	<INPUT id="acteur" type="text" size="15" name="acteur"><br/>
	<label for="contenu">
		Contenu :
	</label>
	<INPUT id="contenu" type="text" size="15" name="contenu"><br/>
	<label for="type">
		Type :
	</label>
	<INPUT id="type" type="text" size="15" name="type"><br/>
	<label for="chevron">
		Prix :
	</label>
	<SELECT id="chevron" name="chevron" size="1">
		<OPTION> > </OPTION>
		<OPTION> < </OPTION>
	</SELECT>
	<INPUT id="prix" type="text" style="width:240px;" name="prix"><br/>
	
	<INPUT type="submit" value="Rechercher" >

</FORM>

	<?php
// Si la variable titre n'existe pas, c'est qu'aucune recherche n'est effectuée
if(!isset($_POST['titre'])){ 
	echo "Aucune recherche effectuée" ;
	$titre = "" ;
	$acteur = "" ;
	$contenu = "" ;
	$type = "" ;
	$prix = "" ;
	$chevron = "" ;
}
else{
	$dom = new DomDocument();
	$dom->load('dvd.xml');
	$racine = $dom->documentElement ;
	/* initialisation de la requete xpath */
	$xpath = new DOMXPath($dom);
	
	// si le titre est rempli, il faut le rechercher en priorité
	if($_POST['titre'] != ""){
		// la requete XPath
		$query = "//dvd[title =\"".$_POST['titre']."\"]/summary";
		$entries = $xpath->evaluate($query, $racine);
		if($entries->length == 0){
			echo "aucun élément ne correspond à votre recherche" ;
		}
		else{
		
			foreach($entries as $e){
				?>
				<h3> Description : </h3></br> <?php echo $e->nodeValue . "<br/>";
				$query_id = "//dvd[title =\"".$_POST['titre']."\"]/attribute::id";
				$entries_id = $xpath->evaluate($query_id, $racine);
			
				// entries_id contient l'id (une seule entrée) du dvd
				foreach($entries_id as $e_id){
					?>
					<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
					<FORM Method="GET" Action="?p=buy">
						<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
						?>									
							Acheter ce dvd
						</a>

					</FORM>
					<?php
				}
			}
		}
	}
	// sinon c'est une requete personnalisée (utilisant les variables acteur, contenu etc) qui nécessite un traitement différent 
	else{
		if($_POST['acteur'] != ""){
			?> <h4> Recherche sur acteur </h4> <?php
			// dans le cas d'une requete avec acteur
			// la requete XPath
			$query_acteur = "//dvd[actor/name =\"".$_POST['acteur']."\"]/title";
			$entries = $xpath->evaluate($query_acteur, $racine);
			if($entries->length == 0){
				echo "aucun élément ne correspond à votre recherche" ;
			}
			else{
				foreach($entries as $e){
					?>
						L'acteur <?php echo $_POST['acteur'] ?> a joué dans : </br> 
					<?php
					// affichage du titre
					echo $e->nodeValue . "<br/>"; 
					// trouver le role de l'acteur dans ce film
					$query_role = "//dvd/actor[name =\"".$_POST['acteur']."\"]/role" ;
					$entries_role = $xpath->evaluate($query_role, $racine) ;
					foreach($entries_role as $e_role){
						echo "dans le role de " . $e_role->nodeValue ;
						
						$query_id = "//dvd[title = \"".($e->nodeValue)."\"]/attribute::id";
						$entries_id = $xpath->evaluate($query_id, $racine);
			
						// entries_id contient l'id (une seule entrée) du dvd
						foreach($entries_id as $e_id){
							?>
							<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
							<FORM Method="GET" Action="?p=buy">
								<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
								?>									
									Acheter ce dvd
								</a>

							</FORM>
							<?php
						}
					}
				}
			}
		}
		// dans le cas d'une requete avec le contenu dans le sommaire
		if($_POST['contenu'] != ""){
			?> <h4> Recherche sur le contenu </h4> <?php
			// la requete XPath
			$query_contenu = "//dvd[contains(summary,\"".$_POST['contenu']."\")]/title";
			$entries = $xpath->evaluate($query_contenu, $racine);
			foreach($entries as $e){
				echo "\"".$_POST['contenu']."\""." est présent dans la description du film : " . $e->nodeValue ."</br>" ;
				$query_id = "//dvd[title = \"".($e->nodeValue)."\"]/attribute::id";
				$entries_id = $xpath->evaluate($query_id, $racine);
			
				// entries_id contient l'id (une seule entrée) du dvd
				foreach($entries_id as $e_id){
					?>
					<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
					<FORM Method="GET" Action="?p=buy">
						<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
						?>									
							Acheter ce dvd
						</a>
						</FORM>
					<?php
				}
			}
		}
		// dans le cas d'une requete avec le type du film
		if($_POST['type'] != ""){
			?> <h4> Recherche sur le type du film </h4> <?php
			// la requete XPath
			$query_type = "//dvd[type = \"".$_POST['type']."\"]/title";
			$entries = $xpath->evaluate($query_type, $racine);
			foreach($entries as $e){
				echo "Le film ". $e->nodeValue. " est du type \"". $_POST['type']."\" </br>" ;
				$query_id = "//dvd[title = \"".($e->nodeValue)."\"]/attribute::id";
				$entries_id = $xpath->evaluate($query_id, $racine);
			
				// entries_id contient l'id (une seule entrée) du dvd
				foreach($entries_id as $e_id){
					?>
					<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
					<FORM Method="GET" Action="?p=buy">
						<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
						?>									
							Acheter ce dvd
						</a>
						</FORM>
					<?php
				}
			}
		}
		// dans le cas d'une requete sur le prix du film
		if($_POST['prix'] != ""){
			?> <h4> Recherche sur la prix du film </h4> <?php
			if($_POST['chevron'] == '>'){
				$query_prix = "//dvd[price > ".$_POST['prix']."]/title";
				$entries = $xpath->evaluate($query_prix, $racine);
				if($entries->length == 0){
					echo "aucun élément ne correspond à votre recherche" ;
				}
				else{
					foreach($entries as $e){
						echo "Le film ". $e->nodeValue. " coute plus de ". $_POST['prix']." euros </br>" ;
						$query_id = "//dvd[title = \"".($e->nodeValue)."\"]/attribute::id";
						$entries_id = $xpath->evaluate($query_id, $racine);
			
						// entries_id contient l'id (une seule entrée) du dvd
						foreach($entries_id as $e_id){
							?>
							<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
							<FORM Method="GET" Action="?p=buy">
								<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
								?>									
									Acheter ce dvd
								</a>
								</FORM>
							<?php
						}
					}
				}
			}
			else{
				$query_prix = "//dvd[price < ".$_POST['prix']."]/title";
				$entries = $xpath->evaluate($query_prix, $racine);
				if($entries->length == 0){
					echo "aucun élément ne correspond à votre recherche" ;
				}
				else{
					foreach($entries as $e){
						echo "Le film ". $e->nodeValue. " coute moins de ". $_POST['prix']." euros </br>" ;
						$query_id = "//dvd[title = \"".($e->nodeValue)."\"]/attribute::id";
						$entries_id = $xpath->evaluate($query_id, $racine);
			
						// entries_id contient l'id (une seule entrée) du dvd
						foreach($entries_id as $e_id){
							?>
							<!-- pour chaque résultat : faire un lien vers l'achat du dvd avec un bouton "acheter"	-->
							<FORM Method="GET" Action="?p=buy">
								<?php echo "<a class='button' href = \"?p=buy&id=".$e_id->nodeValue."\">" ;
								?>									
									Acheter ce dvd
								</a>
								</FORM>
							<?php
						}
					}
				}
			}
		}
	}
	
}
?>


